home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 20.0 KB | 673 lines | [TEXT/MPS ] |
- ;
- ; File: SoundComponents.a
- ;
- ; Contains: Sound Components Interfaces.
- ;
- ; Version: Technology: System 7.5
- ; Release: Universal Interfaces 3.0d3 on Copland DR1
- ;
- ; Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
- ;
- ; Bugs?: If you find a problem with this file, send the file and version
- ; information (from above) and the problem description to:
- ;
- ; Internet: apple.bugs@applelink.apple.com
- ; AppleLink: APPLE.BUGS
- ;
- ;
- IF &TYPE('__SOUNDCOMPONENTS__') = 'UNDEFINED' THEN
- __SOUNDCOMPONENTS__ SET 1
-
- IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
- include 'Types.a'
- ENDIF
- IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
- include 'Components.a'
- ENDIF
- IF &TYPE('__SOUND__') = 'UNDEFINED' THEN
- include 'Sound.a'
- ENDIF
- ;
- ; * * * N O T E * * *
- ;
- ; This file has been updated to include Sound Manager 3.1 interfaces.
- ;
- ; Some of the Sound Manager 3.0 interfaces were not put into the InterfaceLib
- ; that originally shipped with the PowerMacs. These missing functions and the
- ; new 3.1 interfaces have been released in the SoundLib library for PowerPC
- ; developers to link with. The runtime library for these functions are
- ; installed by Sound Manager 3.1. The following functions are found in SoundLib.
- ;
- ; AudioGetBass, AudioGetInfo, AudioGetMute, AudioGetOutputDevice,
- ; AudioGetTreble, AudioGetVolume, AudioMuteOnEvent, AudioSetBass,
- ; AudioSetMute, AudioSetToDefaults, AudioSetTreble, AudioSetVolume,
- ; OpenMixerSoundComponent, CloseMixerSoundComponent, SoundComponentAddSource,
- ; SoundComponentGetInfo, SoundComponentGetSource, SoundComponentGetSourceData,
- ; SoundComponentInitOutputDevice, SoundComponentPauseSource,
- ; SoundComponentPlaySourceBuffer, SoundComponentRemoveSource,
- ; SoundComponentSetInfo, SoundComponentSetOutput, SoundComponentSetSource,
- ; SoundComponentStartSource, SoundComponentStopSource
- ;
- ;
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; constants
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ;sound component types and subtypes
- ;
-
- kNoSoundComponentType EQU '****'
- kSoundComponentType EQU 'sift' ;component type
- kSoundComponentPPCType EQU 'nift' ;component type for PowerPC code
- kRate8SubType EQU 'ratb' ;8-bit rate converter
- kRate16SubType EQU 'ratw' ;16-bit rate converter
- kConverterSubType EQU 'conv' ;sample format converter
- kSndSourceSubType EQU 'sour' ;generic source component
- kMixerType EQU 'mixr'
- kMixer8SubType EQU 'mixb' ;8-bit mixer
- kMixer16SubType EQU 'mixw' ;16-bit mixer
- kSoundOutputDeviceType EQU 'sdev' ;sound output component
- kClassicSubType EQU 'clas' ;classic hardware, i.e. Mac Plus
- kASCSubType EQU 'asc ' ;Apple Sound Chip device
- kDSPSubType EQU 'dsp ' ;DSP device
- kAwacsSubType EQU 'awac' ;Another of Will's Audio Chips device
- kGCAwacsSubType EQU 'awgc' ;Awacs audio with Grand Central DMA
- kSingerSubType EQU 'sing' ;Singer (via Whitney) based sound
- kSinger2SubType EQU 'sng2' ;Singer 2 (via Whitney) for Acme
- kWhitSubType EQU 'whit' ;Whit sound component for PrimeTime 3
- kSoundBlasterSubType EQU 'sbls' ;Sound Blaster for CHRP
- kSoundCompressor EQU 'scom'
- kSoundDecompressor EQU 'sdec'
- kMace3SubType EQU 'MAC3' ;MACE 3:1
- kMace6SubType EQU 'MAC6' ;MACE 6:1
- kCDXA4SubType EQU 'cdx4' ;CD/XA 4:1
- kCDXA2SubType EQU 'cdx2' ;CD/XA 2:1
- kIMA4SubType EQU 'ima4' ;IMA 4:1
- kULawSubType EQU 'ulaw' ;µLaw 2:1
- kLittleEndianSubType EQU 'sowt' ;Little-endian
- kAudioComponentType EQU 'adio' ;Audio components and sub-types
- kAwacsPhoneSubType EQU 'hphn'
- kAudioVisionSpeakerSubType EQU 'telc'
- kAudioVisionHeadphoneSubType EQU 'telh'
- kPhilipsFaderSubType EQU 'tvav'
- ; sound component set/get info selectors
-
- siVolume EQU 'volu'
- siHardwareVolume EQU 'hvol'
- siSpeakerVolume EQU 'svol'
- siHeadphoneVolume EQU 'pvol'
- siHardwareVolumeSteps EQU 'hstp'
- siHeadphoneVolumeSteps EQU 'hdst'
- siHardwareMute EQU 'hmut'
- siSpeakerMute EQU 'smut'
- siHeadphoneMute EQU 'pmut'
- siRateMultiplier EQU 'rmul'
- siQuality EQU 'qual'
- siWideStereo EQU 'wide'
- siHardwareFormat EQU 'hwfm'
- siPreMixerSoundComponent EQU 'prmx'
- siPostMixerSoundComponent EQU 'psmx'
- kOffsetBinary EQU 'raw ' ;format types
- kTwosComplement EQU 'twos'
- kMACE3Compression EQU 'MAC3'
- kMACE6Compression EQU 'MAC6'
- ; features flags
-
- k8BitRawIn EQU $01 ;data description
- k8BitTwosIn EQU $02
- k16BitIn EQU $04
- kStereoIn EQU $08
- k8BitRawOut EQU $0100
- k8BitTwosOut EQU $0200
- k16BitOut EQU $0400
- kStereoOut EQU $0800
- kReverse EQU $00010000 ; function description
- kRateConvert EQU $00020000
- kCreateSoundSource EQU $00040000
- kHighQuality EQU $00400000 ; performance description
- kNonRealTime EQU $00800000
- IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
- ; SoundComponentPlaySourceBuffer action flags
-
- kSourcePaused EQU $01
- kPassThrough EQU $00010000
- kNoSoundComponentChain EQU $00020000
- ; flags for OpenMixerSoundComponent
-
- kNoMixing EQU $01 ;don't mix source
- kNoSampleRateConversion EQU $02 ;don't convert sample rate (i.e. 11 kHz -> 22 kHz)
- kNoSampleSizeConversion EQU $04 ;don't convert sample size (i.e. 16 -> 8)
- kNoSampleFormatConversion EQU $08 ;don't convert sample format (i.e. 'twos' -> 'raw ')
- kNoChannelConversion EQU $10 ;don't convert stereo/mono
- kNoDecompression EQU $20 ;don't decompress (i.e. 'MAC3' -> 'raw ')
- kNoVolumeConversion EQU $40 ;don't apply volume
- kNoRealtimeProcessing EQU $80 ;won't run at interrupt time
- ; SoundParamBlock quality flags
-
- kBestQuality EQU $01 ;use interpolation in rate conversion
- ; useful bit masks
-
- kInputMask EQU $000000FF ;masks off input bits
- kOutputMask EQU $0000FF00 ;masks off output bits
- kOutputShift EQU 8 ;amount output bits are shifted
- kActionMask EQU $00FF0000 ;masks off action bits
- kSoundComponentBits EQU $00FFFFFF
- ; Audio Component constants
-
- ;Values for whichChannel parameter
- audioAllChannels EQU 0 ;All channels (usually interpreted as both left and right)
- audioLeftChannel EQU 1 ;Left channel
- audioRightChannel EQU 2 ;Right channel
- ;Values for mute parameter
- audioUnmuted EQU 0 ;Device is unmuted
- audioMuted EQU 1 ;Device is muted
- ;Capabilities flags definitions
- audioDoesMono EQU $00000001 ;Device supports mono output
- audioDoesStereo EQU $00000002 ;Device supports stereo output
- audioDoesIndependentChannels EQU $00000004 ;Device supports independent software control of each channel
- ;
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; typedefs
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ;
- ;
- ;ShortFixed consists of an 8 bit, 2's complement integer part in the high byte,
- ;with an 8 bit fractional part in the low byte; its range is -128 to 127.99609375
- ;
- ; typedef short ShortFixed
-
-
-
- ; typedef SoundParamBlock * SoundParamBlockPtr
-
- SoundParamBlock RECORD 0
- recordSize ds.l 1 ; offset: $0 (0) ; size of this record in bytes
- desc ds SoundComponentData ; offset: $4 (4) ; description of sound buffer
- rateMultiplier ds.l 1 ; offset: $20 (32) ; rate multiplier to apply to sound
- leftVolume ds.w 1 ; offset: $24 (36) ; volumes to apply to sound
- rightVolume ds.w 1 ; offset: $26 (38)
- quality ds.l 1 ; offset: $28 (40) ; quality to apply to sound
- filter ds.l 1 ; offset: $2C (44) ; filter to apply to sound
- moreRtn ds.l 1 ; offset: $30 (48) ; routine to call to get more data
- completionRtn ds.l 1 ; offset: $34 (52) ; routine to call when buffer is complete
- refCon ds.l 1 ; offset: $38 (56) ; user refcon
- result ds.w 1 ; offset: $3C (60) ; result
- sizeof EQU * ; size: $3E (62)
- ENDR
- ; private thing to reference a Sound Source
-
-
- ; typedef SoundSource * SoundSourcePtr
-
- SoundComponentLink RECORD 0
- description ds ComponentDescription ; offset: $0 (0) ; Describes the sound component
- mixerID ds.l 1 ; offset: $14 (20) ; Reserved by Apple
- linkID ds.l 1 ; offset: $18 (24) ; Reserved by Apple
- sizeof EQU * ; size: $1C (28)
- ENDR
- ; typedef struct SoundComponentLink * SoundComponentLinkPtr
-
- AudioInfo RECORD 0
- capabilitiesFlags ds.l 1 ; offset: $0 (0) ; Describes device capabilities
- reserved ds.l 1 ; offset: $4 (4) ; Reserved by Apple
- numVolumeSteps ds.w 1 ; offset: $8 (8) ; Number of significant increments between min and max volume
- sizeof EQU * ; size: $A (10)
- ENDR
- ; typedef struct AudioInfo * AudioInfoPtr
-
- ;
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; functions for sound components
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ;Sound Component dispatch selectors
- ;
-
- kSoundComponentInitOutputDeviceSelect EQU 1 ;these calls cannot be delegated
- kSoundComponentSetSourceSelect EQU 2
- kSoundComponentGetSourceSelect EQU 3
- kSoundComponentGetSourceDataSelect EQU 4
- kSoundComponentSetOutputSelect EQU 5
- kDelegatedSoundComponentSelectors EQU $0100 ;first selector that can be delegated up the chain
- ;these calls can be delegated and have own range
- kSoundComponentAddSourceSelect EQU $0101
- kSoundComponentRemoveSourceSelect EQU $0102
- kSoundComponentGetInfoSelect EQU $0103
- kSoundComponentSetInfoSelect EQU $0104
- kSoundComponentStartSourceSelect EQU $0105
- kSoundComponentStopSourceSelect EQU $0106
- kSoundComponentPauseSourceSelect EQU $0107
- kSoundComponentPlaySourceBufferSelect EQU $0108
-
- ;Audio Component selectors
- kAudioGetVolumeSelect EQU 0
- kAudioSetVolumeSelect EQU 1
- kAudioGetMuteSelect EQU 2
- kAudioSetMuteSelect EQU 3
- kAudioSetToDefaultsSelect EQU 4
- kAudioGetInfoSelect EQU 5
- kAudioGetBassSelect EQU 6
- kAudioSetBassSelect EQU 7
- kAudioGetTrebleSelect EQU 8
- kAudioSetTrebleSelect EQU 9
- kAudioGetOutputDeviceSelect EQU 10
- kAudioMuteOnEventSelect EQU 129
- ;
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; Sound Manager 3.0 utilities
- ;
- ;
- ; pascal OSErr OpenMixerSoundComponent(SoundComponentDataPtr outputDescription, long outputFlags, ComponentInstance *mixerComponent)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _OpenMixerSoundComponent
- move.l #$06140018,D0
- dc.w $A800
- EndM
- ELSE
- IMPORT_CFM_FUNCTION OpenMixerSoundComponent
- ENDIF
-
- ;
- ; pascal OSErr CloseMixerSoundComponent(ComponentInstance ci)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _CloseMixerSoundComponent
- move.l #$02180018,D0
- dc.w $A800
- EndM
- ELSE
- IMPORT_CFM_FUNCTION CloseMixerSoundComponent
- ENDIF
-
- ;
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; basic sound component functions
- ;
- ;
- ; pascal ComponentResult SoundComponentInitOutputDevice(ComponentInstance ti, long actions)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentInitOutputDevice
- move.l #$00040001,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentInitOutputDevice
- ENDIF
-
- ;
- ; pascal ComponentResult SoundComponentSetSource(ComponentInstance ti, SoundSource sourceID, ComponentInstance source)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentSetSource
- move.l #$00080002,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentSetSource
- ENDIF
-
- ;
- ; pascal ComponentResult SoundComponentGetSource(ComponentInstance ti, SoundSource sourceID, ComponentInstance *source)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentGetSource
- move.l #$00080003,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentGetSource
- ENDIF
-
- ;
- ; pascal ComponentResult SoundComponentGetSourceData(ComponentInstance ti, SoundComponentDataPtr *sourceData)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentGetSourceData
- move.l #$00040004,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentGetSourceData
- ENDIF
-
- ;
- ; pascal ComponentResult SoundComponentSetOutput(ComponentInstance ti, SoundComponentDataPtr requested, SoundComponentDataPtr *actual)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentSetOutput
- move.l #$00080005,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentSetOutput
- ENDIF
-
- ;
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; junction methods for the mixer, must be called at non-interrupt level
- ;
- ;
- ; pascal ComponentResult SoundComponentAddSource(ComponentInstance ti, SoundSource *sourceID)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentAddSource
- move.l #$00040101,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentAddSource
- ENDIF
-
- ;
- ; pascal ComponentResult SoundComponentRemoveSource(ComponentInstance ti, SoundSource sourceID)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentRemoveSource
- move.l #$00040102,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentRemoveSource
- ENDIF
-
- ;
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; info methods
- ;
- ;
- ; pascal ComponentResult SoundComponentGetInfo(ComponentInstance ti, SoundSource sourceID, OSType selector, void *infoPtr)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentGetInfo
- move.l #$000C0103,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentGetInfo
- ENDIF
-
- ;
- ; pascal ComponentResult SoundComponentSetInfo(ComponentInstance ti, SoundSource sourceID, OSType selector, void *infoPtr)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentSetInfo
- move.l #$000C0104,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentSetInfo
- ENDIF
-
- ;
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; control methods
- ;
- ;
- ; pascal ComponentResult SoundComponentStartSource(ComponentInstance ti, short count, SoundSource *sources)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentStartSource
- move.l #$00060105,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentStartSource
- ENDIF
-
- ;
- ; pascal ComponentResult SoundComponentStopSource(ComponentInstance ti, short count, SoundSource *sources)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentStopSource
- move.l #$00060106,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentStopSource
- ENDIF
-
- ;
- ; pascal ComponentResult SoundComponentPauseSource(ComponentInstance ti, short count, SoundSource *sources)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentPauseSource
- move.l #$00060107,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentPauseSource
- ENDIF
-
- ;
- ; pascal ComponentResult SoundComponentPlaySourceBuffer(ComponentInstance ti, SoundSource sourceID, SoundParamBlockPtr pb, long actions)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _SoundComponentPlaySourceBuffer
- move.l #$000C0108,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION SoundComponentPlaySourceBuffer
- ENDIF
-
- ;
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ; interface for Audio Components
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ;
- ;
- ;Volume is described as a value between 0 and 1, with 0 indicating minimum
- ; volume and 1 indicating maximum volume; if the device doesn't support
- ; software control of volume, then a value of unimpErr is returned, indicating
- ; that these functions are not supported by the device
- ;
- ;
- ; pascal ComponentResult AudioGetVolume(ComponentInstance ac, short whichChannel, ShortFixed *volume)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioGetVolume
- move.l #$00060000,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioGetVolume
- ENDIF
-
- ;
- ; pascal ComponentResult AudioSetVolume(ComponentInstance ac, short whichChannel, ShortFixed volume)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioSetVolume
- move.l #$00040001,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioSetVolume
- ENDIF
-
- ;
- ;If the device doesn't support software control of mute, then a value of unimpErr is
- ;returned, indicating that these functions are not supported by the device.
- ;
- ;
- ; pascal ComponentResult AudioGetMute(ComponentInstance ac, short whichChannel, short *mute)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioGetMute
- move.l #$00060002,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioGetMute
- ENDIF
-
- ;
- ; pascal ComponentResult AudioSetMute(ComponentInstance ac, short whichChannel, short mute)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioSetMute
- move.l #$00040003,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioSetMute
- ENDIF
-
- ;
- ;AudioSetToDefaults causes the associated device to reset its volume and mute values
- ;(and perhaps other characteristics, e.g. attenuation) to "factory default" settings
- ;
- ;
- ; pascal ComponentResult AudioSetToDefaults(ComponentInstance ac)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioSetToDefaults
- move.l #$00000004,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioSetToDefaults
- ENDIF
-
- ; This routine is required; it must be implemented by all audio components
- ;
- ; pascal ComponentResult AudioGetInfo(ComponentInstance ac, AudioInfoPtr info)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioGetInfo
- move.l #$00040005,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioGetInfo
- ENDIF
-
- ;
- ; pascal ComponentResult AudioGetBass(ComponentInstance ac, short whichChannel, short *bass)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioGetBass
- move.l #$00060006,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioGetBass
- ENDIF
-
- ;
- ; pascal ComponentResult AudioSetBass(ComponentInstance ac, short whichChannel, short bass)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioSetBass
- move.l #$00040007,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioSetBass
- ENDIF
-
- ;
- ; pascal ComponentResult AudioGetTreble(ComponentInstance ac, short whichChannel, short *Treble)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioGetTreble
- move.l #$00060008,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioGetTreble
- ENDIF
-
- ;
- ; pascal ComponentResult AudioSetTreble(ComponentInstance ac, short whichChannel, short Treble)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioSetTreble
- move.l #$00040009,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioSetTreble
- ENDIF
-
- ;
- ; pascal ComponentResult AudioGetOutputDevice(ComponentInstance ac, Component *outputDevice)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioGetOutputDevice
- move.l #$0004000A,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioGetOutputDevice
- ENDIF
-
- ; This is routine is private to the AudioVision component. It enables the watching of the mute key.
- ;
- ; pascal ComponentResult AudioMuteOnEvent(ComponentInstance ac, short muteOnEvent)
- ;
- IF ¬ GENERATINGCFM THEN
- Macro
- _AudioMuteOnEvent
- move.l #$00020081,-(sp)
- moveq #0,D0
- dc.w $A82A
- EndM
- ELSE
- IMPORT_CFM_FUNCTION AudioMuteOnEvent
- ENDIF
-
- ENDIF
- ENDIF ; __SOUNDCOMPONENTS__
-
-